package com.agileboot.attendance.exception;

/**
 * 业务异常
 *
 * @author ruoyi
 * @date 2023-01-01
 */
public class BusinessException extends RuntimeException {

    private static final long serialVersionUID = 1L;
    
    /**
     * 错误码
     */
    private Integer code;
    
    /**
     * 错误提示
     */
    private String message;
    
    /**
     * 错误明细
     */
    private String detailMessage;
    
    /**
     * 空构造方法，避免反序列化问题
     */
    public BusinessException() {
    }
    
    /**
     * 带消息的构造方法
     * 
     * @param message 异常信息
     */
    public BusinessException(String message) {
        this.message = message;
    }
    
    /**
     * 带消息和错误码的构造方法
     * 
     * @param message 异常信息
     * @param code 错误码
     */
    public BusinessException(String message, Integer code) {
        this.message = message;
        this.code = code;
    }
    
    /**
     * 带消息、错误码和明细的构造方法
     * 
     * @param message 异常信息
     * @param code 错误码
     * @param detailMessage 详细信息
     */
    public BusinessException(String message, Integer code, String detailMessage) {
        this.message = message;
        this.code = code;
        this.detailMessage = detailMessage;
    }
    
    /**
     * 获取错误码
     * 
     * @return 错误码
     */
    public Integer getCode() {
        return code;
    }
    
    /**
     * 获取错误信息
     */
    @Override
    public String getMessage() {
        return message;
    }
    
    /**
     * 获取详细信息
     */
    public String getDetailMessage() {
        return detailMessage;
    }
} 